/**
 *@typedef {object} requestParam
 * @property {number} adultSum
 * @property {number} adultSum
 * @property {number} cabinClass
 * @property {number} childSum
 * @property {string} formatDate
 * @property {string} formatDateEnd
 * @property {string} currencyName
 * @property {string} date
 * @property {string} dateEnd
 * @property {number} delayAfterItinerary
 * @property {number} delayBeforeClickBookButton
 * @property {boolean} enableGetShoppingResultsApiCache
 * @property {string} endCity
 * @property {string} endCityName
 * @property {string[]} excludeCarriers
 * @property {boolean} isTripType
 * @property {string} locationName
 * @property {number} depOfficialTopN
 * @property {number} rtOfficialTopN
 * @property {string} startCity
 * @property {string} startCityName
 * @property {number} timeout
 * @property {number} topN
 * @property {string} traceId
 * @property {cityParam} startCityParam
 * @property {cityParam} endCityParam
 * @property {boolean} cheapest
 * @type {{adultSum: number, cabinClass: number, childSum: number,formatDate:string,formatDateEnd: string, currencyName: string, date: string, dateEnd: string, delayAfterItinerary: number, delayBeforeClickBookButton: number, enableGetShoppingResultsApiCache: boolean, endCity: string, endCityName: string, excludeCarriers: string[], flightKeys: [{airport: string, cast: number, flightNo: string, time: string},{airport: string, cast: number, flightNo: string, time: string},{airport: string, cast: number, flightNo: string, time: string},{airport: string, cast: number, flightNo: string, time: string},{airport: string, cast: number, flightNo: string, time: string},null,null,null,null,null,null,null,null], isTripType: boolean, locationName: string, officialTopN: number, proxy: {password: string, server: string, username: string}, startCity: string, startCityName: string, timeout: number, topN: number, traceId: string, startCityParam: cityParam, endCityParam: cityParam}}
 */

/**
 * @typedef flightInfo
 * @property {string} departureTime
 * @property {string} landingAirportCode
 * @property {string} landingTime
 * @property {flightLeg[]} legs
 * @property {string} order
 * @property {string} airlineCode
 * @property {number} castMinutes
 * @property {number} minimumPrice
 * @property {string} airlineName
 * @property {string} departureAirportCode
 * */


/**
 * @typedef flightLeg
 * @property {string} departureTime
 * @property {string} landingAirportName
 * @property {string} landingAirportCode
 * @property {string} landingTime
 * @property {boolean} isShare
 * @property {string} aircraftCode
 * @property {string} airlineCode
 * @property {number} castMinutes
 * @property {string} departureAirportName
 * @property {string} airlineName
 * @property {string} departureAirportCode
 * @property {string} flightNumber
 */

/**
 * @typedef cityParam
 * @property {number} type 城市3 机场1
 * @property {Map} cityMap
 * @property {string} text
 * @property {string} code
 * @property {string} desc
 * @property {Array} infoLists
 */